package controller

import (
	"github.com/gin-gonic/gin"
	"go_spider_api/logic"
	"go_spider_api/models"
	"strconv"
)

// 启动二手房租房服务,校验参数
func StartEsfZf(c *gin.Context) {
	// 参数 from_site 和 spider_name 都需要校验
	fromSiteStr:= c.Query("from_site")
	spiderList := make([]string, 0)


	fromSite, err := strconv.ParseInt(fromSiteStr, 10, 10)

	//fmt.Println(fromSite)
	if err == nil {
		// from_site参数有效
		// 根据 from_site 找出对应组内的爬虫


			spiderList = models.EsfZfMap[int(fromSite)]


	} else {

		spiderList = models.MapToSlice()
	}

	err = logic.StartEsfZf(spiderList)
	if err != nil {
		c.JSON(200, gin.H{
			"code": 0,
			"msg": "----爬虫服务启动失败----",
		})
		return

	}

	spiderName := c.Query("spider_name")
	if spiderName != "" {
		err = logic.StartEsfZf([]string{spiderName})
		if err != nil {
			c.JSON(200, gin.H{
				"code": 0,
				"msg": "----爬虫服务启动失败----",
			})
			return

		}

	}
	c.JSON(200, gin.H{
		"code": 200,
		"msg": "----成功启动对应爬虫服务----",
	})

}
// 杀死二手房租房爬虫

func KillEsfZf(c *gin.Context) {
	// 如果参数为all, 则杀死全部二手房租房爬虫
	spiderName := c.Query("spider_name")
	if spiderName == "all" {
		spiderList := models.MapToSlice()
		err := logic.KillEsfZf(spiderList)
		if err != nil {
			c.JSON(200, gin.H{
				"code": 0,
				"msg": "----爬虫服务KILL失败----",
			})
			return

		}



	}
	if spiderName != "" {

		err := logic.KillEsfZf([]string{spiderName})
		if err != nil {
			c.JSON(200, gin.H{
				"code": 0,
				"msg": "----爬虫服务KILL失败----",
			})
			return

		}

	}
	c.JSON(200, gin.H{
		"code": 200,
		"msg": "----成功KILL对应爬虫服务----",
	})
}


